 /***************************************************************************
 创建者：华磊
 开始时间：         : 2020.12.19
 copyright            : (C) 深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   其它指令属性编辑视窗
*                                                                         *
 ***************************************************************************/
#ifndef OTHERINSTRUCTIONVIEW_H
#define OTHERINSTRUCTIONVIEW_H

#include "otherinstructionview_global.h"
#include "otherinstruction2view.h"
#include <QWidget>
#include <QTranslator>

class ProgramView;

/**
 * @brief The EM_OTHER_INSTRUCTION enum　其它各指令编号
 */
enum EM_OTHER_INSTRUCTION
{
    EM_OTHER_INSTRUCTION_RSR = 1,
    EM_OTHER_INSTRUCTION_UALM = 2,
    EM_OTHER_INSTRUCTION_TIMER = 3,
    EM_OTHER_INSTRUCTION_TIMER_2 = 4,
    EM_OTHER_INSTRUCTION_OVERRIDE = 5,
    EM_OTHER_INSTRUCTION_MESSAGE = 6,
    EM_OTHER_INSTRUCTION_J_MAX_SPEED = 7,
    EM_OTHER_INSTRUCTION_L_MAX_SPEED = 8
};

namespace Ui {
class OtherInstructionView;
}

/**
 * @brief The OtherInstructionView class　其它指令属性编辑视窗类
 */
class OTHERINSTRUCTIONVIEWSHARED_EXPORT OtherInstructionView : public QWidget
{
    Q_OBJECT

public:
    OtherInstructionView(int styleId,QWidget *parent = 0);

    /**
     * @brief updateView　更新设置数据到界面控件
     */
    void updateView();
    /**
     * @brief getInput　获取界面输入数据
     */
    void getInput();

    void changeLanguage(int language);

    void initialDisplayStyle(int styleId);

private:
    QTranslator translator;

public:
    OtherInstruction2View *otherInstruction2View;
    ProgramView *programView;

    /**
     * @brief instruction　指令
     */
    QString instruction;
    /**
     * @brief selectInstructionType　不同指令编号
     */
    int selectInstructionType;

    /**
     * @brief rsrIndex　RSR信号号码
     */
    int rsrIndex;
    /**
     * @brief rsrValue　RSR值
     */
    QString rsrValue;
    /**
     * @brief rsrValueType　RSR值类型　０:ENABLE   1:DISABLE
     */
    int rsrValueType;
    /**
     * @brief ualmInfo　用户报警信息
     */
    QString ualmInfo;
    /**
     * @brief timerIndex　计时器号码
     */
    int timerIndex;
    /**
     * @brief timerStatus　计时器的状态
     */
    QString timerStatus;
    /**
     * @brief timerStatusType　计时器状态类型　0:START   1:STOP   2:RESET
     */
    int timerStatusType;
    QString timerValue;
    /**
     * @brief overrideValue　速度倍率值
     */
    int overrideValue;
    /**
     * @brief message　消息语句
     */
    QString message;
    /**
     * @brief jIndex　轴号码
     */
    int jIndex;
    /**
     * @brief jMaxSpeedValue　关节最高速度值
     */
    QString jMaxSpeedValue;
    /**
     * @brief lMaxSpeedValue　直线最高速度值
     */
    QString lMaxSpeedValue;

    /**
     * @brief note　指令注释
     */
    QString note;

signals:
//    /**
//     * @brief selectRsrInstruction　选择RSR指令
//     */
//    void selectRsrInstruction();
//    /**
//     * @brief selectUalmInstruction　选择UALM指令
//     */
//    void selectUalmInstruction();
    /**
     * @brief selectTimerInstruction　选择TIMER指令
     */
    void selectTimerInstruction();
    /**
     * @brief selectTimerInstruction　选择TIMER指令
     */
    void selectTimerInstruction2();
//    /**
//     * @brief selectOverrideInstruction　选择OVERRIDE指令
//     */
//    void selectOverrideInstruction();
//    /**
//     * @brief selectMessageInstruction　选择MESSAGE指令
//     */
//    void selectMessageInstruction();

private slots:
    /**
     * @brief on_forward_Btn_clicked　上一页槽函数
     */
    void on_forward_Btn_clicked();

    /**
     * @brief on_next_Btn_clicked　下一页槽函数
     */
    void on_next_Btn_clicked();

    /**
     * @brief on_rate_slider_sliderMoved　速率更改槽函数
     * @param position　滑块位置
     */
    void on_rate_slider_sliderMoved(int position);

    /**
     * @brief on_rate_slider_valueChanged　速率滑块值更改槽函数
     * @param value　速率值
     */
    void on_rate_slider_valueChanged(int value);

    void on_timer_radioButton_clicked();

    void on_timer_radioButton_2_clicked();   
private:
    Ui::OtherInstructionView *ui;
};

#endif // OTHERINSTRUCTIONVIEW_H
